What is @wry/context?
The @wry/context npm package provides a mechanism for managing contextual information across asynchronous operations without relying on global state or directly passing context through function calls. It's particularly useful for tracking execution contexts across async boundaries, making it easier to implement features like request-scoped logging, performance monitoring, and more in a way that's transparent to the code that's being executed.
Creating and using a context
This feature demonstrates how to create a new context and use it to store and retrieve values within a specific execution scope. The `withValue` method temporarily sets a value for a given key in the context, which can be accessed using the `get` method within the callback passed to `withValue`. Outside of this callback, the context does not hold the value, showcasing how @wry/context can manage context-specific data without leaking it outside of the intended scope.
const {Slot} = require('@wry/context');
let context = new Slot();
context.withValue('myKey', 'myValue', () => {
// Within this function, context.get('myKey') will return 'myValue'.
console.log(context.get('myKey')); // Outputs: 'myValue'
});
// Outside, context.get('myKey') returns undefined.
console.log(context.get('myKey')); // Outputs: undefined